package org.wangchaocheng.cloudgallery.user.executor.command;

import cn.dev33.satoken.secure.BCrypt;
import org.wangchaocheng.cloudgallery.common.annotation.CommandExecutor;

/**
 * 用户修改密码执行器
 *
 * @author wangchaocheng
 * @date 2025/04/03
 */
@CommandExecutor
public class UserPasswordChangeCmdExe {

    /**
     * 加密密码
     * @param originalPassword 明文密码
     * @return 加密后的密码
     */
    public String encodePassword(String originalPassword) {
      return BCrypt.hashpw(originalPassword, BCrypt.gensalt());
    }

    /**
     * 校验明文密码和加密后的密码是否匹配
     * @param unEncodedPassword 明文密码
     * @param encodedPassword 加密后的密码
     * @return boolean 匹配结果
     */
    public boolean matchPassword(String unEncodedPassword, String encodedPassword) {
      return BCrypt.checkpw(unEncodedPassword, encodedPassword);
    }
}
